package com.lei.dao;

import com.lei.entity.Type;

import java.util.List;
import java.util.Map;

/**
 * @author Lei Chu
 * @Date 2020/10/21 17:17
 */
public interface TypeDao {

    /**
     * 功能描述:获得所有书的类型
     * @return List<Map>
     */
    List<Map> getAllType();

    /**
     * 功能描述:分页带查询条件、获得所有书的类型，用于数据的展示
     * @param type Type
     * @return java.util.List<com.lei.entity.Type>
     */
    List<Type> getAllTypeByPage(Type type);

    /**
     * 功能描述:获得总数
     * @param type Type
     * @return long
     */
    long getCount(Type type);

    /**
     * 功能描述:添加类型
     * @param type Type
     * @return int
     */
    int addType(Type type);

    /**
     * 功能描述:修改类型信息
     * @param type Type
     * @return int
     */
    int updateType(Type type);

    /**
     * 功能描述:通过name找Id，用于验证添加和修改时名字是否可用
     * @param typename Typename
     * @return int
     */
    Integer getIdByName(String typename);

    /**
     * 功能描述:根据id删除类型
     * @param typeid id
     * @return int
     */
    int deleteType(String typeid);

    /**
     * 功能描述:查询书的类型和各个类型的数量
     * @return java.util.List<java.util.Map>
     */
    List<Map> getAllTypeAndBookCount();

}
